An explosive growth and increasing popularity of digital communication networks have changed the manner in which information is accessed, exchanged and disseminated. Among various digital communication networks, both private and public, the Internet has become by far the most popular one. Through its open (non-proprietary) communication protocols and architecture, this network has attracted a large number of users. Through a variety of physical links, from satellite links to residential telephone lines, the Internet has become a truly global phenomenon.
From its inception, the Internet supported a number of protocols for communication and exchange of information, such as electronic mail (e-mail), file transfer (ftp), and direct connection to a remote computer to access its resources (telnet), with some other protocols, most notably HTTP, added later on. In the last few years, the HTTP protocol has become the most popular communication protocol used on the Internet. The worldwide network of computers connected to the Internet and using HTTP as the communication protocol is known as the World Wide Web (WWW) or simply the Web.
The popularity of the Internet and its protocols resulted in development of private networks using Transmission Control Protocol/Internet Protocol (TCP/IP) and HyperText Transfer Protocol (HTTP) as their communication standards. These networks, known as intranets, are usually set up by companies, corporations, or similar organizations, to facilitate the exchange of information and communication between the members of the organization. They cover a broad spectrum of sizes, from small in-house (office) networks to networks spanning the globe. The use of Internet communication protocols by intranets facilitates their communications with other IP networks, in particular with the Internet.
The development of the World Wide Web resulted in large amounts of data made available at various Web sites, frequently in the form of searchable databases, a phenomenon known as database publishing. Many of these databases are available to the public and contain public domain information, such as library catalogues or patent specifications. Commercial (access-for-fee) databases, which may contain proprietary information or public domain information with some value-added features, or databases containing a proprietary information belonging to corporations or other private organisms, may be also accessible through the Web, but access to these databases is usually limited to authorized users and is password-protected. Similar access limitations may also apply to internal databases accessible only to employees of an organization through a private network, in particular an intranet, and are normally used to set various levels of access to information retrievable from the database (access privileges). For both public and private (internal) databases interfaced to TCP/IP networks, there is a growing trend to provide a Web-compatible user interface for retrieving information from the database, usually with a Web browser as the only tool necessary to access the database.
The retrieval of information from a database normally requires that the information retrieved be presented in a form meaningful to the user. An example of such a meaningful form is a report, an organized presentation of certain information available in one or more databases. A report may include lists of figures, tables, graphs, charts, and the like. In a managed reporting environment, usually under control of a database management system (DBMS), the user is provided with access to a set of predefined reports stored in another database. Each predefined report specification stored in such a database represents a set of instructions (software code) capable of retrieving data from one or more databases and presenting it in the form of a report. When the user requests a report, usually by selecting it from a list of available reports, the code of the corresponding report specification is executed and the report is presented to the user as a result.
At the heart of any managed reporting environment there is a report server, a computer running a program (software code) providing a user interface, receiving input from the user requesting a specific predefined report, finding the predefined report specification in a database of such specifications, running the predefined report specification (including retrieving appropriate information from one or more databases), generating a report, and sending the report to the user interface. The managed reporting environment may serve additional functions, such as controlling access to certain report specifications, i.e., providing a predefined set of users with access to only a subset of available report specifications.
Known managed reporting environments thus require that the user select a predefined report specification. However, an acceptable predefined report specification meeting specific information requirements of the user may not be available in the system. It is often difficult, especially for a large number of database users, such as in the context of a large organization, to maintain a sufficient number of report specifications to meet all, or even most, of the users' needs. For example, a database may include sales figures for 100 different products in 100 different countries whereas the user may require a report including sales figures for only 10 specific products in 10 specific countries. The user will likely be unable to locate a report specification providing the desired combination of products and countries, since such a report would be only one out of an extremely large number of possible reports that users might require.
One approach to overcome this problem is to use a prompting predefined report specification, sometimes referred to as a “prompted report”. After a prompting predefined report specification is selected by the user and executed, it prompts the user to provide certain additional information. For example, if a prompting predefined report specification has been designed to generate a report including sales figures for a set of specific products in a set of specific countries, it would prompt the user to select one or more countries from a list of countries, and to select one or more products from a list of products. Once the requested information has been supplied by the user in response to the prompts, the report server runs the prompting predefined report specification and provides a report containing information depending on user input. Prompting predefined report specifications thus use a limited form of information filtering to enable the managed reporting environment to provide a greater variety of reports. However, since prompting predefined report specifications offer only limited customization, the user may be still unable to obtain the desired report specification matching his specific needs. As the prompts of a prompting report are hard-coded, i.e., constitute part of the code of the predefined report specification, they cannot be changed without recoding the specification or at least parts thereof, which constitutes another important limitation of prompting predefined report specifications.
Another possible approach to obtain a desired report specification unavailable as a predefined report specification or prompting predefined report specification would be to modify one of the available report specifications capable of providing a report similar to that desired by the user. However, known methods of modifying a report specification require modification of the code of the specification. Most users of managed reporting environments do not have sufficient skills, knowledge, or time to locate the relevant part of the specification code and make necessary modifications, or to code an entirely new report specification. Direct modification of the code of a predefined report specification might be acceptable for frequent and skilled users, but would be impractical if not impossible for most users of the managed reporting environment.
The problem of generating customized report specifications, i.e., specifications suiting specific needs and requirements of the database user, illustrates a more general problem of customized retrieval and presentation of information available in a database. There clearly exists a need to provide a simple and flexible method for achieving a customized retrieval and presentation of information from databases, in particular relational databases. The present invention provides such a method, which is free of many prior art limitations.